package com.dq.demos.web.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

/**
 * 友费控发票格式处理
 */
public class YFKJSONInvoiceUtil {


    /**
     * (全电)电子发票(普通发票)
     * @param json
     * @param fplx  32
     * @param billType
     * @return
     */
    public static JSONObject zjinv_feord_issuer(JSONObject json, String fplx,String billType) {
        JSONObject data = new JSONObject();
        String invoiceNum = json.getString("NumberOfInvoice");
        data.put("invoiceNum",invoiceNum);// 	发票号码
        data.put("invoiceCode","");// 	发票号码
        String kprq = json.getString("DateOfIssue").replace("-", "");
        data.put("kprq",kprq);// 	开票日期
        data.put("gmfMc",json.getString("NameOfPurchaser"));// 	购买方_名称
        data.put("gmfNsrsbh",json.getString("TaxpayerIdentificationNumberUnifiedSocialCreditCodeOfPurchaser"));//	购买方_纳税人识别号
        data.put("xsfMc",json.getString("NameOfSeller"));//	销售方_名称
        data.put("xsfNsrsbh",json.getString("TaxpayerIdentificationNumberUnifiedSocialCreditCodeOfSeller"));//	销售方_纳税人识别号
        data.put("hjje",json.getBigDecimal("TotalAmountExcludingTax"));//	不含税金额合计
        data.put("hjse",json.getBigDecimal("TotalTaxAmount"));//	合计_税额
        data.put("",json.getString("TaxIncludedAmountInWords"));//	价税合计（大写）
        data.put("jshj",json.getBigDecimal("TotalAmountExcludingTax"));//	价税合计（小写）
        data.put("bz",json.getString("Remarks"));//	备注
        data.put("kpr",json.getString("Issuer"));//	开票人
//        data.put("",json.getString("BeginningOfIncomePeriodUnderAccrualBasis"));// 	权责发生制下收入所属期起
//        data.put("",json.getString("EndOfIncomePeriodUnderAccrualBasis"));// 	权责发生制下收入所属期止
        data.put("yfpDm",json.getString("CodeOfOriginalInvoice"));// 	原发票代码
        data.put("yfpHm",json.getString("NumberOfOriginalInvoice"));// 	原发票号码
//        data.put("",json.getString("ReasonOfRushRed"));// 	冲红原因
        JSONArray arrs = json.getJSONArray("InformationOfTaxableGoodsOrServicesDetailItemsTuple");
        JSONArray items = new JSONArray();
        for (int i = 0; i < arrs.size(); i++) {
            JSONObject arr = arrs.getJSONObject(i);
            JSONObject item = new JSONObject();
            item.put("billType",billType);
            item.put("invoiceNum",invoiceNum); // 发票号码
            item.put("invoiceCode",""); // 发票代码
//            item.put("",arr.getString("NatureOfInvoiceLine"));// 	发票行性质
//            item.put("",arr.getString("TaxClassificationCode"));// 	税收分类编码
            item.put("xmmc",arr.getString("NameOfTaxableGoodsOrServices"));// 	项目名称
            item.put("ggxh",arr.getString("Specification"));// 	规格型号
            item.put("dw",arr.getString("UnitOfGoodsOrServices"));// 	货物或劳务、服务单位
            item.put("xmsl",arr.getBigDecimal("QuantityOfGoodsOrServices"));// 	货物或劳务、服务数量
            item.put("xmdj",arr.getBigDecimal("UnitPriceOfGoodsOrServices"));// 	货物或劳务、服务单价
            item.put("xmje",arr.getBigDecimal("AmountExcludingTax"));// 	不含税金额合计
            item.put("sl",Double.parseDouble(arr.get("TaxRate").toString().replace("%", "")) / 100 );// 	税率/征收率
            item.put("se",arr.getBigDecimal("TaxAmount"));// 	税额
            items.add(item);
        }
        data.put("items", items);
        return data;
    }
}
